home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / prg_casm / snip9611.zip / WHATS.NEW < prev    next >
Text File  |  1996-11-24  |  9KB  |  194 lines

  1. +++Date last modified: 24-Nov-1996
  2.  
  3. What's new in SNIPPETS Nov 96 edition?
  4. ======================================
  5.  
  6.  
  7. General stuff:
  8. --------------
  9.  
  10. Each file in SNIPPETS (except for certain test files) now contains the date
  11. it was actually last changed in line 1. Since SNIPPETS files are time/date
  12. stamped to their release date (more on this below) prior to release, this
  13. provides useful information whether the file you have has actually been
  14. updated or not.
  15.  
  16. One of the first things you might notice is that this release contains a lot
  17. more C++ code than last time. As the language specification settles and more
  18. people get comfortable with it, I'm finding more folks posting high-quality
  19. public domain and/or freeware code. I collect the best of these and include
  20. them in SNIPPETS.
  21.  
  22. I've added a few more functions from my MicroFirm Function Library (MFL) plus
  23. removed some limitations on some MFL code already included. Since many of the
  24. MFL-derived files now contain all of the features of the MFL originals, I've
  25. added a separate license in the file LICENSE.MFL. Basically it says you can
  26. use any MFL-derived source for any purpose except selling the source or
  27. objects (in .obj or .lib formats). This should cover all legitimate uses and
  28. still leave me with the option of commercially publishing them separately if
  29. the opportunity arises.
  30.  
  31. If you have existing programs using GETOPTS.C, PSPLIT.C, or PMERGE.C, you'll
  32. need to rework it for use with this release. I've replaced the crippled
  33. version of GETOPTS.C with the full-blown MFL implementation which adds
  34. additional features albeit with more complexity. PSPLIT.C and PMERGE.C were
  35. actually crippled versions of the code from MFL's FSPLIT.C. Althought their
  36. semantics matched the same-named functions supplied with many compilers, the
  37. MFL versions are significantly more powerful, but will require some code
  38. rework to use.
  39.  
  40. You'll notice a number of new files with a .HOW extension. These are FAQ
  41. (frequently asked question) response files. They explain the workings of some
  42. of the more cryptic or complex SNIPPETS such as EVAL.C or DBLROUND.C.
  43. Included is the often requested DIRPORT.HOW, a tutorial on the portable
  44. directory processing definitions in DIRPORT.H.
  45.  
  46.  
  47. New complete packages:
  48. ----------------------
  49.  
  50. The standout in this category is Andrew Clarke's outstanding VIDMGR direct
  51. video library (version 1.3), portable between DOS, Win32, and OS/2, and
  52. available for all popular compilers. Read about it in VIDMGR.TXT.
  53.  
  54. David Nugent contributed a robust ANSI/Avatar screen code interpreter written
  55. in C++. Begin your tour of it by reading SHOWANSI.DOC/
  56.  
  57. From Branislav Slantchev comes a quite complete C++ date class library. See
  58. ZDATE.MAN to learn how to use it.
  59.  
  60. Jari Laaksonen's C/C++ comment utilities are back after an absense from the
  61. previous SNIPPETS release for some bug fixes. His older utilties, written in
  62. C are back, plus he's added a whole new set built around a C++ parser. All is
  63. explained in CMTCONVR.TXT.
  64.  
  65. Fred Cole's CSPLIT utility, version 2.2, is included in its entirety. For
  66. those unfamilar with it, CSPLIT breaks one or more source files up into
  67. smaller sections suitable for inclusion in size-limited electronic mail
  68. messages.
  69.  
  70. Erik Bachmann's complete BACSTD library and utilities are now included. As
  71. this version of SNIPPETS is released, I haven't taken too much time to
  72. "portabalize" these, so they  remain somewhat Borland-specific albeit still
  73. quite useful. Be sure to check out Erik's functions for non-English, non-
  74. ASCII string processing.
  75.  
  76. Jari Laaksonen took the WHICHARC.C code contributed by Heinz Ozwirk and later
  77. expanded by David Gersic and reformed it into a set of extensible C++ classes
  78. for determining which archive utility was used on an archive file (even self-
  79. extracting archives). The complete work is now included in 5 files - look for
  80. the names, WHICHARC.* and ARCHIVE.*.
  81.  
  82. From MFL comes the complete, non-crippled, GETOPTS.C. If you need to process
  83. command line options or wildcard file specs, this is the tool to use! You'll
  84. have to read GETOPTS.MAN to get the complete picture - getops() is powerful,
  85. but much more complex than the older version in the last SNIPPETS. Still,
  86. it's much easier to learn than to try to write similar functionality from
  87. scratch.
  88.  
  89. The only downside to using the full-blown GETOPTS package is size. If the old
  90. GETOPTS.C filled your needs and you can live without all of the new GETOPTS
  91. features, the old version is still included as GETOPTSL.C (it stands for
  92. getopts_lite()!)
  93.  
  94.  
  95. Other highlights:
  96. -----------------
  97.  
  98. If you're always looking up cheat sheets or grabbing books for lists of
  99. operators, keywords, functions, macros, etc., SNIPPETS now includes
  100. STDSTUFF.TXT which lists all operators, keywords, functions, macros,
  101. preprocessor directives, and trigraphs for ANSI/ISO standard C, the Posix.1
  102. extensions (if you don't know about Posix, you should also read POSIX.NFO),
  103. the draft numerical extensions from the Numerical C Extensions Group (NCEG),
  104. and the draft C++ standard.
  105.  
  106. For DOS folks wishing to embed more-style processing in their programs, I
  107. added MOREPROC.C which implements the traditional page-at-a-time processing,
  108. and ADJSCROL.C which allows a user to vary the scroll rate as the text rolls
  109. by.
  110.  
  111. A new PARSTIME.C provides pasring of times just as PARSDATE.C already
  112. provided parsing of dates.
  113.  
  114. Game players will be glad to see C functions to simulate the rolling of dice
  115. (ROLLDICE.C and a C++ class to implement a deck of standard playing cards
  116. (CARDS.CPP).
  117.  
  118. Yet another configuration file reader has been added. The new CFG.C and the
  119. older INITVARS.C each have complementary strengths, so you can choose which
  120. ever best suits your needs.
  121.  
  122. From MFL comes EXISTS.C. Using it, you can check to see if a specified file
  123. exists. Big deal, right? Well, it also can search the PATH environment
  124. variable (envar) or any other similarly formatted envars, such as the LIB and
  125. INCLUDE envars used by many compilers.
  126.  
  127. Also from MFL comes FOPENX.C. It searches paths just like EXISTSX.C, but if
  128. it finds the file, it opens it for you.
  129.  
  130. A number of new math functions and applications have been added for doing
  131. things like computing specific elements of the Fibonacci series or calcula-
  132. ting pi to even more digits that the previous SNIPPETS code would allow.
  133.  
  134. One new, deceptively simple, addition is RND_DIV.C, which performs integer
  135. division with rounding, valid for all values of divisors and dividends.
  136.  
  137. Several new demo programs have been added to help use existing SNIPPETS
  138. files. One example is MDASORT.C which shows how to sort multi-dimensional
  139. arrays allocated by MDALLOC.C or AMALLOC.C.
  140.  
  141. A discussion in the FidoNet C_Echo led to several new variations on the old
  142. theme of how to most efficiently count the number of bits set in a number. By
  143. the end of the discussion, several excellent new approaches found their way
  144. into SNIPPETS along with a benchmark to evaluate them. This isn't trivial
  145. since different compilers work better with different algorithms.
  146.  
  147. The old DOS functions, NOCTRLC.C and NORESET.C, to trap Ctrl-C, Ctrl-Break,
  148. and Ctrl-Alt-Del, have been superceded by KBTRAP.C. In addition to the other
  149. keys, the KBTRAP code traps the SysRq and Pause keys. It also traps Print
  150. Screen operations which are remembered for possible deferred execution.
  151.  
  152. For DOS users wanting to run a background task off of the timer interrupt,
  153. I've added TICKTRAP.C.
  154.  
  155. From Paul Johnston comes a C++ class library for calculating 6 different
  156. types of 16- and 32-bit CRC's.
  157.  
  158. From Mark Corgan comes a pair of utilities, suitable for hacking into
  159. componenet pieces, for creating searchable indexes for text files with
  160. variable length records. Check them out in INDEX.C and LOOKUP.C
  161.  
  162. Auke Reitsma, a prolific SNIPPETS contributor has provided a generic finite
  163. state machine implementation - see FSM.C.
  164.  
  165. One major annoyance to me has been that after I carefully arrange the files
  166. in SNIPPETS, some visual operating systems insist on sorting the files
  167. regardless of their order in the directory. Even worse, some file systems
  168. sort the files in the directory itself. My solution, which I've used in this
  169. release, is to create a DOS utility (see SEQTOUCH.C) which sequentially sets
  170. the time/date stamps of every file in a given directory. I use this on
  171. SNIPPETS files prior to release, so once they're unpacked, you can still see
  172. them in "natural" order by simply sorting by date.
  173.  
  174. For DOS programmers, from Cliff Rhodes comes a set of both XMS and EMS memory
  175. management functions.
  176.  
  177. Unix users haven't been forgotten. In addition to the existing implementa-
  178. tion of getch() for Unix, I've added UNXSLEEP.C for implementing short
  179. duration time delays in Unix programs, useful in porting some PC code.
  180.  
  181. You'll find many more changes and additions along with bug fixes and general
  182. clean-up.
  183.  
  184. -------------------------------  Enjoy!  -----------------------------------
  185.  
  186.  
  187. Bob Stout
  188. FidoNet:    1:106/2000.6
  189.             C_Echo moderator (1990-1991, 1996-1997)
  190. Internet:   rbs@brokersys.com
  191. SnailMail:  MicroFirm
  192.             P.O. Box 428
  193.             Alief, TX 77411
  194.